색인 순차 접근 방식
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
색인 순차 접근 방식(ISAM)은 컴퓨터 메모리가 부족했던 시대에 개발된 파일 접근 방식이다. 데이터 레코드와 인덱스를 사용하여 레코드 검색 속도를 높이는 기술로, IBM에서 개발되어 VSAM으로 발전했다. ISAM은 MySQL의 MyISAM 등 다양한 데이터베이스 시스템에서 활용되었으며, 데이터베이스 파일에 직접 접근하여 구현이 쉽지만, 삽입 충돌 및 데이터베이스 불일치 문제를 야기할 수 있다.
더 읽어볼만한 페이지
색인 순차 접근 방식 | |
---|---|
개요 | |
종류 | 파일 접근 방식 |
개발 시기 | 1960년대 후반 |
특징 | 순차 접근과 임의 접근의 장점을 결합 대용량 데이터 처리에 적합 데이터베이스 시스템의 기본 구성 요소 |
구조 | |
주요 구성 요소 | 데이터 파일: 실제 데이터 레코드 저장 인덱스 파일: 데이터 레코드의 위치 정보 저장 |
데이터 파일 접근 방식 | 키 값을 기반으로 직접 접근 |
인덱스 파일 접근 방식 | B-트리 또는 해싱 사용 |
작동 방식 | |
데이터 검색 | 인덱스 파일을 사용하여 데이터 레코드 위치 확인 해당 위치에서 데이터 레코드 직접 읽기 |
데이터 삽입 | 데이터 파일에 새로운 레코드 추가 인덱스 파일 업데이트 |
데이터 삭제 | 데이터 파일에서 해당 레코드 삭제 (또는 삭제 표시) 인덱스 파일 업데이트 |
데이터 업데이트 | 데이터 파일에서 해당 레코드 수정 필요한 경우 인덱스 파일 업데이트 |
장점 및 단점 | |
장점 | 순차 접근과 임의 접근 모두 가능 대용량 데이터 처리에 효율적 데이터 검색 속도가 빠름 |
단점 | 인덱스 파일 유지 관리 필요 데이터 삽입/삭제 시 성능 저하 가능성 존재 구조 복잡성으로 인해 구현 및 유지 보수가 어려움 |
활용 분야 | |
주요 활용 분야 | 데이터베이스 시스템 파일 관리 시스템 정보 검색 시스템 |
예시 | 재고 관리 시스템 고객 정보 관리 시스템 도서 관리 시스템 |
역사 | |
초기 개발 목적 | 순차 파일의 순차 처리 기능과 무작위 파일의 빠른 단일 레코드 검색 기능을 결합 |
주요 구현체 | IBM의 VSAM (Virtual Storage Access Method) |
VSAM | 1970년대 초반 IBM 메인프레임에서 널리 사용됨 |
추가 정보 | |
ISAM의 진화 | 현대적인 데이터베이스 시스템에서는 B-트리 인덱스 등 더 발전된 기술이 사용됨 |
관련 기술 | B-트리, 해싱, 데이터베이스 인덱싱 |
2. 역사
ISAM을 사용하는 시스템에서는 데이터가 고정 길이의 레코드로 저장되었다. 초기에는 키 순서대로 저장되었고, ''인덱스''라는 별도 집합이 각 레코드 위치를 가리켜 전체 데이터 검색 없이 원하는 데이터를 찾을 수 있게 했다.[13]
ISAM의 주요 개선 사항은 색인이 작고 빠르게 검색할 수 있다는 점이다. 가능하면 메모리에서 완전히 검색할 수 있어 데이터베이스가 필요한 레코드에만 접근할 수 있다. 데이터에 대한 추가 수정은 해당 테이블과 색인에만 적용되며, 다른 데이터는 변경할 필요가 없다.[4]
ISAM의 구현은 레코드 내에 다른 데이터의 포인터를 저장하는 내비게이션 데이터베이스에서 벗어나게 했다. ISAM의 장점은 인덱스 크기가 작아 검색 속도가 빠르고, 필요한 데이터에만 접근할 수 있다는 것이다. 또한 데이터 변경 시 해당 데이터만 수정하면 되므로 다른 데이터까지 변경할 필요가 없었다.[13]
ISAM 파일 생성 후, 인덱스 노드는 수정되지 않고 삽입 및 삭제 중에는 리프 노드만 변경되었다. 이로 인해 리프 노드 용량 초과 시 새 레코드가 오버플로 체인에 저장된다. 삽입이 삭제보다 많으면 오버플로 체인이 커져 검색 시간에 영향을 줄 수 있다.[13]
관계형 데이터베이스는 ISAM 방식에 테이블 간 링크 유지 로직을 추가하여 구현하기 쉽다. 외부 키로 사용되는 필드의 빠른 검색을 위해 인덱스가 사용된다. 이는 관련 데이터 포인터를 직접 저장하는 것보다 느리지만, 데이터의 물리적 구성 변경 시에도 링크가 유지되어 포인터를 다시 쓸 필요가 없다.
ISAM은 파일에 대한 직접적이고 순차적인 접근 방식이며, 이해와 구현이 쉽다. 그러나 각 클라이언트 머신이 파일 연결 상태를 관리해야 하므로, 데이터 추가 작업 충돌 가능성이 있다. 이 문제는 클라이언트-서버 모델 도입으로 서버가 클라이언트 요구를 직렬화하여 처리함으로써 해결되었다. 이는 저장된 데이터에 대해 클라이언트 측 계층에 존재하는 데이터베이스 관리 시스템(DBMS) 또는 SQL의 트랜잭션 개념의 기초가 된다.
IBM에서는 ISAM 대신 VSAM(가상 기억 접근 방식)을 사용하게 되었다. 이후 IBM은 DB2를 개발했다. 2004년 시점에서 IBM은 DB2를 주요 데이터베이스 관리 시스템으로 추진하고 있다.
3. 기술적 특징
관계형 데이터베이스는 테이블 간의 링크 유효성을 유지하는 로직을 추가하여 ISAM 프레임워크 위에 쉽게 구축할 수 있다. 일반적으로 링크로 사용되는 필드인 외래 키는 빠른 조회를 위해 색인화된다. 이는 관련 데이터에 대한 포인터를 레코드에 직접 저장하는 것보다 느리지만, 데이터의 물리적 레이아웃을 변경해도 포인터를 업데이트할 필요가 없다.
ISAM은 기본적으로 데이터베이스 파일에 직접 접근하는 방식으로 구성되어 있어 이해하고 구현하기 쉽다. 그러나 각 클라이언트 머신이 접근하는 각 파일에 대한 자체 연결을 관리해야 한다는 단점이 있다. 이는 해당 파일에 대한 삽입 충돌 가능성으로 이어져 데이터베이스 상태가 일관되지 않게 될 수 있다. 이를 방지하기 위해 일부 ISAM 구현[8][5]은 전체 파일 또는 개별 레코드 잠금 기능을 제공한다. 여러 레코드를 잠그면 교착 상태 방지 계획을 엄격하게 따르지 않는 한 교착 상태 위험이 발생한다. 잠금 및 교착 상태 문제는 일반적으로 클라이언트 요청을 정렬하고 순서를 유지하는 클라이언트-서버 프레임워크를 추가하여 해결된다. 전체 ACID 트랜잭션 관리 시스템은 일부 ISAM 클라이언트-서버 구현에서 제공된다.[8] 이는 기본적인 데이터베이스 관리 시스템 (DBMS)의 개념으로, 기본 데이터 저장소에 대한 클라이언트 계층이다.
IBM 엔지니어들은 최소한의 컴퓨터 메모리를 사용하도록 ISAM 시스템을 설계했다. 그 대신 입출력 채널, 제어 장치, 디스크의 사용률이 높아졌다. 키로 레코드를 찾기 위해 디스크의 인덱스는 복잡한 자기 수정 채널 프로그램으로 검색된다.[6] 이는 채널, 제어 장치 및 디스크의 사용 시간을 증가시켰다. 이후 시스템에서 물리적 및 가상 메모리 크기가 증가함에 따라 이는 비효율적인 것으로 간주되었고, 메모리 사용량과 디스크 활동 간의 절충점을 변경하기 위해 VSAM이 개발되었다.
ISAM이 자기 수정 채널 프로그램을 사용한 것은 나중에 CP-67이 OS/360을 지원하는 데 어려움을 야기했는데, CP-67은 I/O 작업이 시작될 때 전체 채널 프로그램을 고정 메모리에 복사하고 가상 주소를 실제 주소로 변환했기 때문이다.[7]
3. 1. 데이터 구조
ISAM 시스템에서 데이터는 고정 길이 필드로 구성된 레코드로 저장되며, 원래 키 시퀀스에 따라 순차적으로 저장된다.[4] ''색인''이라고 하는 레코드의 보조 집합은 각 레코드의 위치에 대한 포인터를 포함하여 전체 데이터 세트를 검색하지 않고도 개별 레코드를 검색할 수 있도록 한다. 이는 다른 레코드에 대한 포인터가 레코드 내부에 저장되었던 동시대의 네비게이션 데이터베이스와는 다르다.
ISAM 파일이 생성되면 색인 노드가 고정되고, 이후에 발생하는 삽입 및 삭제 동안 해당 포인터는 변경되지 않는다(리프 노드의 내용만 이후에 변경됨).[4] 이로 인해 일부 리프 노드에 대한 삽입이 노드의 용량을 초과하는 경우 새 레코드가 오버플로 체인에 저장된다. 테이블에서 삭제되는 레코드보다 삽입되는 레코드가 훨씬 더 많은 경우 이러한 오버플로 체인이 점차적으로 매우 커질 수 있으며, 이는 레코드 검색에 필요한 시간에 영향을 미친다.[4]
ISAM 파일은 데이터 레코드 모음과 2~3단계의 인덱스로 구성된다.
인덱스 종류 | 설명 |
---|---|
트랙 인덱스 | 인덱싱하는 디스크 트랙의 각 실린더에 대한 가장 높은 키를 포함한다. |
실린더 인덱스 | 실린더의 가장 높은 키와 해당 트랙 인덱스의 디스크 주소를 저장한다. |
마스터 인덱스 (선택적) | 일반적으로 대용량 파일에만 사용되며, 실린더 인덱스 트랙의 가장 높은 키와 해당 실린더 인덱스의 디스크 주소를 포함한다. |
파일이 로드되면 데이터 레코드는 이동하지 않으며, 삽입된 레코드는 별도의 ''오버플로 영역''에 배치된다.[6]
3. 2. 접근 방식
ISAM 시스템에서 데이터는 고정 길이 필드로 구성된 레코드로 저장되며, 원래 키 시퀀스로 순차적으로 저장된다. ''색인''이라고 하는 레코드의 보조 집합은 각 레코드의 위치에 대한 포인터를 포함하여 전체 데이터 세트를 검색하지 않고도 개별 레코드를 검색할 수 있도록 한다. 이는 다른 레코드에 대한 포인터가 레코드 내부에 저장되었던 네비게이션 데이터베이스와는 다른 방식이다. ISAM의 주요 개선 사항은 색인이 작고 빠르게 검색할 수 있으며, 가능하면 메모리에서 완전히 검색할 수 있어 데이터베이스가 필요한 레코드에만 접근할 수 있다는 것이다. 데이터에 대한 추가 수정은 다른 데이터에 대한 변경 사항을 요구하지 않으며, 해당 테이블과 색인에만 변경 사항이 적용된다.[4]ISAM 파일이 생성되면 색인 노드가 고정되고, 이후에 발생하는 삽입 및 삭제 동안 해당 포인터는 변경되지 않는다(리프 노드의 내용만 이후에 변경됨). 이로 인해 일부 리프 노드에 대한 삽입이 노드의 용량을 초과하는 경우 새 레코드가 오버플로 체인에 저장된다. 테이블에서 삭제되는 레코드보다 삽입되는 레코드가 훨씬 더 많은 경우 이러한 오버플로 체인이 점차적으로 매우 커질 수 있으며, 이는 레코드 검색에 필요한 시간에 영향을 미친다.[4]
관계형 데이터베이스는 테이블 간의 링크 유효성을 유지하는 로직을 추가하여 ISAM 프레임워크 위에 쉽게 구축할 수 있다. 일반적으로 링크로 사용되는 필드인 ''외래 키''는 빠른 조회를 위해 색인화된다. 이는 관련 데이터에 대한 포인터를 레코드에 직접 저장하는 것보다 느리지만, 데이터의 물리적 레이아웃을 변경해도 포인터를 업데이트할 필요가 없다는 것을 의미한다.
ISAM은 기본적으로 데이터베이스 파일에 직접 접근하는 방식으로 구성되어 있어 이해하고 구현하기 쉽다. 단점은 각 클라이언트 머신이 접근하는 각 파일에 대한 자체 연결을 관리해야 한다는 것이다. 이는 결국 해당 파일에 대한 삽입 충돌 가능성으로 이어져 데이터베이스 상태가 일관되지 않게 된다. 이를 방지하기 위해 일부 ISAM 구현[8][5]은 전체 파일 또는 개별 레코드 잠금 기능을 제공한다. 여러 레코드를 잠그면 교착 상태 방지 계획을 엄격하게 따르지 않는 한 교착 상태 위험이 발생한다. 잠금 및 교착 상태 문제는 일반적으로 클라이언트 요청을 정렬하고 순서를 유지하는 클라이언트-서버 프레임워크를 추가하여 해결된다. 전체 ACID 트랜잭션 관리 시스템은 일부 ISAM 클라이언트-서버 구현에서 제공된다.[8] 이는 기본적인 데이터베이스 관리 시스템 (DBMS)의 개념으로, 기본 데이터 저장소에 대한 클라이언트 계층이다.
3. 3. 인덱스 구조
ISAM 파일은 데이터 레코드 모음과 2~3단계의 인덱스로 구성된다. 인덱스는 다음과 같은 구조를 가진다.- '''트랙 인덱스''': 인덱싱하는 디스크 트랙의 각 실린더에 대한 가장 높은 키를 포함한다.
- '''실린더 인덱스''': 실린더의 가장 높은 키와 해당 트랙 인덱스의 디스크 주소를 저장한다.
- '''마스터 인덱스'''(선택 사항): 일반적으로 대용량 파일에만 사용되며, 실린더 인덱스 트랙의 가장 높은 키와 해당 실린더 인덱스의 디스크 주소를 포함한다.[6]
파일이 로드되면 데이터 레코드는 이동하지 않으며, 삽입된 레코드는 별도의 ''오버플로우 영역''에 배치된다. 키로 레코드를 찾기 위해 디스크의 인덱스는 복잡한 자기 수정 채널 프로그램으로 검색된다.[6]
3. 4. 오버플로우 영역
ISAM 파일이 생성되면 색인 노드가 고정되고, 이후 발생하는 삽입 및 삭제 과정에서 해당 포인터는 변경되지 않는다 (리프 노드의 내용만 변경됨). 이로 인해 일부 리프 노드에 대한 삽입이 노드의 용량을 초과하는 경우, 새 레코드는 오버플로 체인에 저장된다. 삭제되는 레코드보다 삽입되는 레코드가 훨씬 많으면 오버플로 체인이 점차적으로 매우 커져 레코드 검색 시간에 영향을 미친다.[4]파일이 로드되면 데이터 레코드는 이동하지 않으며, 삽입된 레코드는 별도의 ''오버플로우 영역''에 배치된다. 키로 레코드를 찾기 위해 디스크의 인덱스는 복잡한 자기 수정 채널 프로그램으로 검색된다.[6]
4. 장단점
ISAM은 구현이 쉽다는 장점이 있지만, 각 클라이언트 머신이 접근하는 파일마다 연결을 관리해야 하므로 데이터베이스 상태가 일관되지 않을 수 있다는 단점이 있다. 이러한 문제는 클라이언트-서버 프레임워크를 통해 클라이언트 요청을 정렬하고 순서를 유지하여 해결할 수 있다.
4. 1. 장점
ISAM 시스템은 데이터베이스 레코드를 빠르게 검색하고 효율적으로 접근할 수 있게 해준다. 이는 작고 빠른 검색이 가능한 '색인' 덕분인데, 이 색인은 각 레코드의 위치를 가리키는 포인터를 포함하고 있어 전체 데이터를 검색할 필요 없이 필요한 레코드만 찾을 수 있다. 가능하면 메모리에서 완전히 검색할 수 있어 데이터베이스가 필요한 레코드에만 접근할 수 있다. 데이터 수정 시에도 해당 테이블과 색인만 변경하면 되므로, 다른 데이터에 대한 변경이 필요 없다.[4]ISAM은 파일에 대한 직접적이고 순차적인 접근 방식이며 매우 이해하기 쉽고 구현도 쉽다.
4. 2. 단점
ISAM 파일이 생성되면 색인 노드가 고정되고, 이후 발생하는 삽입 및 삭제 과정에서 해당 포인터는 변경되지 않는다. (리프 노드의 내용만 변경된다.) 이 때문에 일부 리프 노드에 삽입이 발생하여 노드의 용량을 초과하면, 새 레코드는 오버플로 체인에 저장된다. 테이블에서 삭제되는 레코드보다 삽입되는 레코드가 훨씬 많으면 오버플로 체인이 점차 커져 레코드 검색 시간에 영향을 줄 수 있다.[4]ISAM은 데이터베이스 파일에 직접 접근하는 방식이어서 이해와 구현이 쉽다. 그러나 각 클라이언트 머신이 접근하는 파일마다 연결을 관리해야 한다는 단점이 있다. 이는 파일 삽입 시 충돌을 일으켜 데이터베이스 상태의 불일치를 초래할 수 있다. 이를 막기 위해 일부 ISAM 구현에서는[8][5] 전체 파일 또는 개별 레코드에 잠금 기능을 제공한다. 여러 레코드를 잠그는 경우, 교착 상태 방지 계획을 엄격히 따르지 않으면 교착 상태가 발생할 위험이 있다. 잠금 및 교착 상태 문제는 보통 클라이언트-서버 프레임워크를 추가하여 클라이언트 요청을 정렬하고 순서를 유지함으로써 해결된다. 일부 ISAM 클라이언트-서버 구현에서는 전체 ACID 트랜잭션 관리 시스템을 제공하기도 한다.[8]
5. 관계형 데이터베이스와의 관계
관계형 데이터베이스는 ISAM 프레임워크에 테이블 간 링크 유효성 유지 로직을 추가하여 쉽게 구축할 수 있다. 일반적으로 링크로 사용되는 외래 키는 빠른 조회를 위해 색인화된다. 이는 관련 데이터에 대한 포인터를 레코드에 직접 저장하는 것보다 느리지만, 데이터의 물리적 레이아웃이 변경되어도 포인터를 업데이트할 필요가 없어 항목이 여전히 유효하다는 장점이 있다.
5. 1. 클라이언트-서버 모델
ISAM은 데이터베이스 파일에 직접 접근하는 방식이어서 이해와 구현이 쉽지만, 각 클라이언트 머신이 접근하는 파일마다 자체 연결을 관리해야 하는 단점이 있었다. 이 때문에 파일 삽입 시 충돌이 발생하여 데이터베이스 상태가 일관되지 않을 수 있었다.[4] 이 문제를 해결하고자 일부 ISAM 구현에서는 전체 파일 또는 개별 레코드에 잠금 기능을 제공하기도 했다.[8][5]이러한 잠금 및 교착 상태 문제는 클라이언트-서버 프레임워크를 추가하여 해결했다. 클라이언트-서버 프레임워크는 클라이언트 요청을 정렬하고 순서를 유지한다. 일부 ISAM 클라이언트-서버 구현은 ACID 트랜잭션 관리 시스템을 제공하기도 한다.[8] 이는 기본적인 데이터베이스 관리 시스템(DBMS) 개념으로, 데이터 저장소에 대한 클라이언트 계층 역할을 한다.
6. 구현체
구현체 | 설명 |
---|---|
OpenVMS | RMS(Files-11 파일 시스템과 함께 사용)는 여러 3GL 및 4GL 언어에서 일관된 데이터 구성 및 접근 방식을 제공하며, 애플리케이션과 디스크의 파일 사이에 추가적인 계층을 제공한다. RMS는 순차적, 상대 레코드 번호 접근, 레코드 파일 주소 접근 및 색인 접근의 네 가지 데이터 접근 방식을 제공한다. |
어드밴티지 데이터베이스 서버 | 데이터베이스 관리자 |
버클리 DB | |
B트리브 | |
페어컴 DB[8] | |
C-ISAM | |
데이터플렉스 | 전용 데이터베이스 |
dBase, 클리퍼, 폭스프로 | 관련 제품 |
DEC 레코드 관리 서비스 | |
인스크라이브 | HP 탠덤 구조화된 파일 접근 방식 |
확장 가능한 스토리지 엔진 | |
액세스 데이터베이스 엔진 | 마이크로소프트 액세스에서 사용 |
MySQL | ISAM을 MyISAM으로 구현하고 확장 |
패러독스 | |
pblIsam[9] | C로 작성된 GPL 구현체 |
슈퍼베이스 데이터베이스 | 제품군 |
dbm | DBM 및 플랫 파일 데이터베이스가 함께 작동 |
7. 설계 고려 사항
ISAM 시스템은 메모리 사용을 최소화하고 입출력 채널, 제어 장치, 디스크를 활용하는 방식으로 설계되었다. 파일은 데이터 레코드와 트랙 인덱스, 실린더 인덱스, 마스터 인덱스(선택 사항)로 구성된 2~3단계의 인덱스를 가진다. 레코드 삽입 시에는 별도의 오버플로 영역을 사용한다. 이러한 설계는 당시 메모리 부족 문제를 해결했지만, 이후 시스템에서 메모리 크기가 증가하면서 비효율적이 되었고, VSAM 개발의 계기가 되었다.[14] 또한, 자기 수정 채널 프로그램 사용으로 인해 OS/360의 CP-67 지원에 어려움을 겪었다.[15]
7. 1. 메모리 사용 최소화
ISAM은 컴퓨터 메모리가 부족했던 시대에 개발되었다. IBM은 메모리 사용량이 최소화되도록 시스템을 설계했다. 그 대신 입출력 채널, 제어 장치, 디스크가 사용 중 상태로 유지되었다. ISAM 파일은 데이터 레코드 컬렉션과 2개 또는 3개의 레벨의 인덱스로 구성된다. ''트랙 인덱스''에는 인덱스를 생성하는 각 디스크 트랙의 최고 키가 포함된다. ''실린더 인덱스''에는 실린더의 최고 키와 해당 트랙 인덱스의 디스크 주소가 저장된다. 옵션인 ''마스터 인덱스''는 일반적으로 큰 파일에만 사용되며 실린더 인덱스 트랙의 최고 키와 해당 실린더 인덱스의 디스크 주소를 포함한다. 파일이 로드되면 데이터 레코드는 이동되지 않는다. 삽입된 레코드는 별도의 ''오버플로 영역''에 배치된다. 키로 레코드를 찾기 위해 디스크의 인덱스는 복잡한 자기 수정채널 프로그램에 의해 검색된다. [6] 이로 인해 채널, 제어 장치 및 디스크의 사용 시간이 증가했다. 이후 시스템에서 물리적 메모리와 가상 메모리의 크기가 커지면서 이는 비효율적이라고 여겨졌고, 메모리 사용량과 디스크 활동 간의 트레이드 오프를 변경하기 위해 VSAM이 개발되었다.7. 2. 입출력 채널 활용
IBM 엔지니어들은 컴퓨터 메모리를 최소한으로 사용하도록 ISAM 시스템을 설계했다. 그 대신 입출력 채널, 제어 장치, 디스크 사용률이 높아졌다. ISAM 파일은 데이터 레코드 모음과 2~3단계의 인덱스로 구성된다. ''트랙 인덱스''는 인덱싱하는 디스크 트랙의 각 실린더에 대한 가장 높은 키를 포함한다. ''실린더 인덱스''는 실린더의 가장 높은 키와 해당 트랙 인덱스의 디스크 주소를 저장한다. 선택적인 ''마스터 인덱스''는 일반적으로 대용량 파일에만 사용되며, 실린더 인덱스 트랙의 가장 높은 키와 해당 실린더 인덱스의 디스크 주소를 포함한다.[6]파일이 로드되면 데이터 레코드는 이동하지 않으며, 삽입된 레코드는 별도의 ''오버플로우 영역''에 배치된다. 키로 레코드를 찾기 위해 디스크의 인덱스는 복잡한 자기 수정 채널 프로그램으로 검색된다.[6] 이는 채널, 제어 장치 및 디스크의 사용 시간을 증가시켰다. 이후 시스템에서 물리적 및 가상 메모리 크기가 증가함에 따라 이는 비효율적인 것으로 간주되었고, 메모리 사용량과 디스크 활동 간의 절충점을 변경하기 위해 VSAM이 개발되었다.
ISAM이 자기 수정 채널 프로그램을 사용한 것은 나중에 CP-67이 OS/360을 지원하는 데 어려움을 야기했는데, CP-67은 I/O 작업이 시작될 때 전체 채널 프로그램을 고정 메모리에 복사하고 가상 주소를 실제 주소로 변환했기 때문이다.[7]
7. 3. 자기 수정 코드
ISAM이 자기 수정 채널 프로그램을 사용하면서, 이후 CP-67이 OS/360을 지원하는 데 어려움이 발생했다. CP-67은 입출력(I/O) 작업이 시작될 때 전체 채널 프로그램을 고정 메모리에 복사하고 가상 주소를 실제 주소로 변환했기 때문이다.[7]참조
[1]
서적
Proceedings of the 1st International Conference on Very Large Data Bases - VLDB '75
[2]
웹사이트
Explore the differences between ISAM and relational databases
http://www.techrepub[...]
2004-02-13
[3]
간행물
Analysis of index-sequential files with overflow chaining
[4]
서적
Database Management Systems
McGraw-Hill Higher Education
[5]
웹사이트
C-ISAM Programmers Manual
http://publibfp.dhe.[...]
[6]
서적
DOS/VS LIOCS Volume 3: DAM and ISAM Logic
https://archive.org/[...]
1973
[7]
서적
IBM Virtual Machine Facility /370: Planning Guide
http://www.bitsavers[...]
1972
[8]
웹사이트
FairCom ISAM API for C - Developers Guide
https://docs.faircom[...]
[9]
웹사이트
pblIsamFile Implementation
http://www.mission-b[...]
[10]
간행물
Analysis of VSAM's free-space behavior
[11]
웹사이트
Explore the differences between ISAM and relational databases
http://www.techrepub[...]
2004-02-13
[12]
간행물
Analysis of index-sequential files with overflow chaining
[13]
서적
Database Management Systems
McGraw-Hill Higher Education
[14]
서적
DOS/VS LIOCS Volume 3: DAM and ISAM Logic
https://archive.org/[...]
1973
[15]
서적
IBM Virtual Machine Facility /370: Planning Guide
http://www.bitsavers[...]
1972
[16]
웹사이트
pblIsamFile Implementation
http://www.mission-b[...]
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com